/*
 * SDL.h
 *
 *  Created on: 23/10/2013
 *      Author: fernando
 */

#ifndef SDL_H_
#define SDL_H_

#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <string>

//The attributes of the screen
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 640;
const int SCREEN_BPP = 32;

class SDL {
public:
	SDL();
	virtual ~SDL();
	SDL(unsigned int, unsigned int);
	//carga una imagen y devuelve un puntero a la superficie creada
	static SDL_Surface* load_image(std::string);
	//Aplica una imagen sobre una superficie
	static void apply_surface(int x, int y, SDL_Surface* source,
			SDL_Surface* destination, SDL_Rect* clip);
	//Libera una imagen
	static void clean_up(SDL_Surface* screen);
	//Crea la pantalla
	bool init(std::string nombre);
	//Devuelve un puntero a la pantalla
	SDL_Surface* getScreen();

protected:
	SDL_Surface* screen;
	unsigned int ancho;
	unsigned int alto;
};

#endif /* SDL_H_ */
